Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效 您所在的位置:网站首页 kali gps定位 Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效

Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效

#Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效| 来源: 网络整理| 查看: 265

 

一:在Android studio中配置opencv简介: opencv是一款功能强大的图像处理工具,其支持多个平台的图像处理应用,如Windows,MAC,Android等,当然使用最多的还是PC端的开发,配置在VS2019中使用,方便快捷。笔者因为最近接触到一个项目,需要将PC端的工程移植到Android手机平台来实现,所以开始尝试在手机端进行图像处理的开发工作,之后会把进度和遇到的问题慢慢更新出来。

二:软件工具介绍: 1:Android studio3.6版本,我用的是目前最新的版本,遇到的问题也是最多的,下面会一一讲述 2:AndroidSDK 3:OpenCV-android-sdk

三:配置步骤: 1:安装好Android studio,这一步不会的可以去参考其他大佬的配置方法,正常安装即可。现在的Android studio比较人性化了,自身集成了java的jdk,不需要单独去配置java环境,一般来说,内置的jdk就已经够用了。 2:下载opencv for Android版,这个可以在官网下载,下载最新的版本就可以,下载下来后进行解压。 下载地址:链接:https://pan.baidu.com/s/1ciZGQjA3lUtCTIyHGdopBw 提取码:wo97 复制这段内容后打开百度网盘手机App,操作更方便哦 下载后解压出来的文件目录:我的是解压到:D:\project\android\demo\opencv-3.4.3-android-sdk\OpenCV-android-sdk

 

Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效_android

3:打开Android studio, File–>New–>Import Module

1)选择D:\project\android\demo\opencv-3.4.3-android-sdk\OpenCV-android-sdk\sdk\java

Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效_Android_02

2)Module name: Android studio会自动填充这项为openCVLibrary343 (不同版本对应的数字也不一样),不用管它.

3)点击下一步,会出现三个复选框,都选上,点击Finish

 

4:上一步结束后,opencv包文件就倒入Android studio中了,接下来开始配置到项目中,依次点击:

1)File–>Project Structure

2)左边Dependencies栏下选择app

3)在右边挨着的上面一栏中可以看到+号

4)点击右边栏中的“+”,选择第三个Module Dependency

5)里面应该是对应的opencv的包文件,点击ok退出,然后再点击ok退出

::5:上面一步完成之后,开始对项目的配置文件进行修改,这一步很重要,版本号有一个地方没对准就会编译出错。

可以看到Gradle Scripts目录下,有三个build.gradle文件,我们需要对app的build.gradle和opencv的build.gradle文件进行版本号的修改,分别记下app的build.gradle文件中的

Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效_Android_03

后面的数值

compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion

点击打开opencv的build.gradle文件,把文件中对应的

compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion

后的数值改成app中一样的

这是app的build.gradle文件 这是修改完成后opencv的build.gradle文件

6:上一步完成后,opencv在Android中的配置就基本完成了,这个时候先点击一下Build-Make project,构建一下项目,看下会不会报错,只要版本号修改的一样,应该不会报错了。注意这里有可能会报一个最小版本大于虚拟机版本的错误,只需要把minSdkVersion的数字改成你目前Android studio中创建的虚拟机的版本即可。 接下来我们要做的是一个很重要的步骤,就是把opencv的包文件添加到项目中,这样程序在手机上跑的时候就不需要opencv manager这个安装文件了。集成完成后,我们生成的APK安装包大小会有70M左右,当然这也是为了方便用户下载安装软件。总不能每一次安装APP,都要单独再下载安装一个opencv manager吧,这样的APP用户体验极差。 具体步骤: 1)把OpenCV sdk for Android文件下D:\project\android\demo\opencv-3.4.3-android-sdk\OpenCV-android-sdk\sdk\native下的libs文件夹拷贝到你的安卓项目下,

Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效_OpenCV_04

即Opencvtest\app\src\main下面,并且将libs改名为jniLibs

Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效_OpenCV_05

2)再次回到Android studio,点击Build-Make project,等待项目构建完成,如果没有报错,就证明opencv已经配置好了,接下来可以进行开发工作了。

最后在这里补充一个知识点,很多人在按照如上配置之后,跑opencv的程序会提示没有安装opencv manager,这个问题其实是因为老版的opencv中的onResume()函数没有成功调用集成进去的opencv包文件,我们只要修改一下即可:

老版的opencv程序中是这样写的:

@Override public void onResume() { super.onResume(); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback); }

我们需要改成这样,直接赋值我这一段进去即可:

@Override //想要opencv不依赖opencvmanager,关键就在这里,除了基本的把文件复制到项目中外, // onResume函数必须写成以下形式,这样才能调用到复制过来的包文件 public void onResume() { super.onResume(); if (!OpenCVLoader.initDebug()) { Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback); } else { Log.d(TAG, "OpenCV library found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } //super.onResume(); //OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback); }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有